package Exercise;
import java.util.Random;
import java.util.Scanner;
public class shuangseqiu {
    public static void main(String[] args){
        //生成中奖号码
        int [] arr = new int[7];
        arr= Create(arr);
        //用户输入自己的号码
        int[] newarr = new int[arr.length];
        newarr = Input(newarr);
        System.out.println("用户的号码：");
        Output(newarr);
        //判断蓝色球是否中奖
        int bluenum=0;
        int blue = newarr[newarr.length-1];
        if(blue  == arr[arr.length-1])
            bluenum++;
        //判断红色球中奖个数
        int rednum=0;
        rednum = Count(arr,newarr);
        //根据红色、蓝色球中奖个数，判断中奖情况
        Result(rednum,bluenum);
        //打印中奖号码
        System.out.println("最终大奖号码：");
        Output(arr);
    }

    //生成双色球的中奖号码
    public static int [] Create(int[] arr){
        //生成红色球号码
        Random random = new Random();
        for(int i = 0;i<=5;){
            int rednum = random.nextInt(33)+1;
            //当rednum不存在时，才放入
            if(!Judge(arr,rednum))
            {
                arr[i] = rednum;
                i++;
            }
        }
        //生成蓝色球号码
        int bluenum = random.nextInt(16)+1;
        arr[arr.length-1] = bluenum;
        return arr;
    }

    //号码去重
    public static boolean Judge(int[] arr,int rednum){
        //如果rednum存在，返回true
        for(int i=0;i<arr.length;i++){
            if(rednum==arr[i])
                return true;
        }
        return false;
    }

    //用户输入号码
    public static int[] Input(int[] arr){
        //输入红色球号码
        Scanner sc = new Scanner(System.in);

        for(int i = 0;i<arr.length-1;){
            System.out.print("请输入第"+(i+1)+"个红色球号码：");
            int redNum = sc.nextInt();
            //判断输入的合法性
            if(redNum>=1&&redNum<=33){
                //判断输入是否重复
                if(!Judge(arr,redNum)){
                    arr[i] = redNum;
                    i++;
                }else
                    System.out.println("号码重复！");
            }else
                System.out.println("号码超出范围！");
        }
        //输入蓝色球号码,成功后退出
        while(true) {
            System.out.print("请输入蓝色球的号码：");
            int blueNum = sc.nextInt();
            //判断输入合法性
            if (blueNum >= 1 && blueNum <= 16)
            {
                arr[arr.length - 1] = blueNum;
                break;
            }
            else
                System.out.println("号码超出范围！");
        }
        return arr;
    }

    //统计中奖的红色球的个数
    public static int Count(int[] arr,int[] newarr){
        int red=0;
        for(int i=0;i<newarr.length-1;i++){
            int redNum = newarr[i];
            for(int j = 0;j<arr.length-1;j++){
                if(redNum==arr[j]){
                    red++;
                    break;
                }
            }
        }
        return red;
    }

    //判断中奖情况
    public static void Result(int rednum,int bluenum){
        int sum = rednum+bluenum;
        switch(sum) {
            //四个球，10元
            case 4: {
                System.out.println("恭喜你，获得10元！");
                break;
            }
            //5个球，500元
            case 5:{
                System.out.println("恭喜你，获得500元！");
                break;
            }
            //6个球，6个红球，500万元,5个红球，3000元
            case 6:{
                if(rednum==5)
                    System.out.println("恭喜你，获得3000元！");
                else
                    System.out.println("恭喜你，获得500万元！");
                break;
            }
            //全中，1000万元
            case 7:{
                System.out.println("恭喜你，获得1000万元！");
                break;
            }
            default:{
                //一个没有，0元
                if(rednum==0&&bluenum==0){
                    System.out.println("谢谢惠顾，欢迎下次再来！");
                    break;
                }
                //1到3个，5元
                else{
                    System.out.println("恭喜你，获得5元！");
                    break;
                }
            }
        }
    }

    //遍历
    public static void Output(int[] arr){
        for(int i = 0;i<arr.length;i++)
            System.out.print(arr[i]+" ");
        System.out.println(" ");
    }
}
